﻿// Copyright (c) Inossem. All rights reserved.
// Licensed under the LGPL-3.0 license. See LICENSE file in the project root for full license information.
using DWF.Studio.Plugin.Contract;
using DWF.Studio.Plugin.Contract.Enum;
using DWF.Studio.Plugin.Contract.Exceptions;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DWF.Studio.Plugin.Contract
{
    /// <summary>
    /// 插件信息接口
    /// </summary>
    public interface IPluginInfo
    {
        /// <summary>
        /// 插件id
        /// </summary>
        string PluginId
        {
            get;
        }

        /// <summary>
        /// 友好名称
        /// </summary>
        string FriendlyName
        {
            get;
        }

        /// <summary>
        /// 组名称
        /// </summary>
        string GroupName
        {
            get;
        }

        /// <summary>
        /// 版本
        /// </summary>
        string Version
        {
            get;
        }

        /// <summary>
        /// 描述
        /// </summary>
        string Description
        {
            get;
        }

        string Icon
        {
            get;
        }

        /// <summary>
        /// 样式uri
        /// </summary>
        string StyleUri
        {
            get;
        }

        /// <summary>
        /// 样式key
        /// </summary>
        string StyleKey
        {
            get;
        }

        /// <summary>
        /// 提示信息
        /// </summary>
        string ToolTip
        {
            get;
        }

        /// <summary>
        /// 插件类型
        /// </summary>
        EPluginType PluginType
        {
            get;
        }

        /// <summary>
        /// 插件程序集类型
        /// </summary>
        EPluginAssemblyType AssemblyTypes
        {
            get;
        }

        /// <summary>
        /// 插件类型名称
        /// </summary>
        string PluginTypeName
        {
            get;
        }

        /// <summary>
        /// 插件目录
        /// </summary>
        string PluginDirectory
        {
            get;
        }

        /// <summary>
        /// 程序集文件名称
        /// </summary>
        string AssemblyFileName
        {
            get;
        }

        /// <summary>
        /// 程序集全名称
        /// </summary>
        string AssemblyFullName
        {
            get;
        }

        /// <summary>
        /// 最后一次修改时间
        /// </summary>
        DateTime? DateLastModified
        {
            get;
        }
    }
}
